<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body{
            height: 100vh
        }
        .container{
            /*1.这个只对文字内容、图片、按钮等行内元素生效 */
            text-align: center;
        }
       
        .item,.item2,.item3,.item4,.item5,.item6{
            height: 300px;
            width: 300px;
            background-color: yellow;
        }
        .item2{
            /* 2.margin居中对绝对定位的元素 和浮动的元素不生效 相对定位可以 */
            margin: 0 auto ;
        }
        .item3{
            margin: 10px auto;
            /* 脱标了 margin auto失效 */
            position: absolute;
            top: 300px;
        }
        .item4{
            /* 3.垂直居中 */
            line-height: 300px;
        }
        .item5{
            /* 4.绝对定位实现居中 */
            position: absolute;
            top: 50%;
            left: 50%;
            /* 距离是本身大小的一半 */
            /* margin-left: -150px;
            margin-top: -150px; */

            /* 子元素高度不确定的时候 要用2d平移  负数代表向左、向上平移*/
            /* 平移自身宽高度的50% */
            transform: translate(-50%,-50%);
        }
        .item7{
            display: flex;
            justify-content: center;
        }
    </style>
</head>
<body>
    <div class="container">
        这个是文字内容
        <div class="item">这个是文字内容是居中的 但是块级元素div并不居中 text-align只对行内元素生效</div>
        <div class="item2">margin来居中块级元素</div>
        <div class="item3">margin居中对绝对定位的元素 和浮动的元素不生效 相对定位可以</div>
    </div>
    <div class="item4">line-height=容器高度，这个只适用于一行文字的情况下 如果有多行文字 就会失效</div>
    <div class="item5">绝对定位居中</div>
    <div class="item7"><div class="item6">flex</div></div> 
</body>
</html>